import { createI18n } from 'vue-i18n'

import en from './locales/en.json'
import zh from './locales/zh.json'

const messages = {
    en,
    zh
}
export const getSystemLocale = () => {

    // 尝试从 localStorage 获取用户保存的选择
    const system = JSON.parse(localStorage.getItem('system'))
    const lang = system?.lang

    // 使用 'in' 关键字检查 messages 对象是否包含该键
    if (lang && lang in messages) {
        return lang
    }

    // 获取浏览器语言设置
    const systemLang = navigator.language || navigator.userLanguage

    const primaryLang = systemLang.split('-')[0]
    // 直接访问 messages 对象中的键来检查是否存在
    if (messages[systemLang]) {
        return systemLang
    }
    if (messages[primaryLang]) {
        return primaryLang
    }

    // 默认回退到英文
    return 'en'
}

const i18n = createI18n({
    legacy: false, // 使用 Composition API 模式
    // locale: 'zh-CN', // 默认语言
    locale: getSystemLocale(),
    fallbackLocale: 'en', // 回退语言
    messages
})

export default i18n